QD55 - ÅgÉÇÉjÉ^ÅïÉTÉEÉìÉhÅhÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ…ï\é¶Ç≥ÇÍÇÈÉÇÉjÉ^Å[ ID ÇÃéÊìæï˚ñ@

(98 îN 1 åé 16 ì˙)

Q: ÉfÉBÉXÉvÉåÉCÅEÉ}ÉlÅ[ÉWÉÉÇà DMGetDisplayIDByGDevice() ÉRÅ[ÉãÇégǡǃÅAÉÜÅ[ÉUÇ™ÅgIdentify MonitorsÅhÉ{É^ÉìÇÉNÉäÉbÉNǵÇΩÇΔÇ´Ç…ÅgÉÇÉjÉ^ÅïÉTÉEÉìÉhÅhÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ…ï\é¶Ç≥ÇÍÇÈÉÇÉjÉ^Å[ ID ÇéÊìæÇµÇÊǧÇΔévǡǃǢNjÇ∑ÅBÇΔDZÇÎÇ™ÅADMGetDisplayIDByGDevice() ÇÕDZÇÃílÇï‘Ç≥ǻǢÇÊǧÇ≈Ç∑ÅBê≥ǵǢÉÇÉjÉ^Å[ ID î‘çÜÇéÊìæÇ∑ÇÈÇ…ÇÕǫǧǵÇΩÇÁÇÊÇ¢Ç≈ǵÇÂǧÅB

A: Display Manager ÇÃÉ}ÉjÉÖÉAÉãÇ…ãLç⁄ÇÕǻǢǙÅADisplays.h ÉtÉ@ÉCÉãÇ≈íËã`Ç≥ÇÍǃǢÇÈÉRÅ[ÉãǙdžÇËÅAǪÇÍÇégǢNjÇ∑ÅBÇ‹Ç∏ÅADMGetDisplayIDByGDevice Ç≈ displayID ÇéÊìæÇµÅADMGetNameByAVID DžǪÇà displayID ÇìnǵǃÉfÉoÉCÉXÇÃÅuñºëOÅvÇéÊìæÇ∑ÇÈÅAÇΔǢǧLJÇÃÇ≈Ç∑ÅBDZDZÇ≈ÉfÉoÉCÉXÇÃÅuñºëOÅvÇΔǢǡǃǢÇÈÇÃÇÕÅAÇ¢ÇÌljÇÈÉfÉoÉCÉXñº (ó·Ç¶ÇŒÅuMultiple Scan DisplayÅv) ÇΔÉfÉoÉCÉXî‘çÜ (ó·Ç¶ÇŒÅu1Åv) ÇçáÇÌÇπÇΩï∂éöóÒÇ≈Ç∑ÅBÉfÉoÉCÉXî‘çÜÇÕÅgÉÇÉjÉ^ÅïÉTÉEÉìÉhÅhÉRÉìÉgÉçÅ[ÉãÉpÉlÉãÇ…ï\é¶Ç≥ÇÍÇÈî‘çÜÇ≈Ç∑ÅBÉfÉoÉCÉXî‘çÜÅAǬNjÇËÉÇÉjÉ^Å[ ID ÇæÇØÇéÊìæÇ∑ÇÈÇ…ÇÕÅAÉfÉoÉCÉXÇÃñºëOÇÃäYìñïîï™ÇÃÉ}ÉXÉNÇéwíËǵǃéÊÇËèoǵǃÇ≠ÇæÇ≥Ç¢ÅBó·Ç¶ÇŒÅAéüÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB

err = DMGetDisplayIDByGDevice(gd, &displayID, false);
err = DMGetNameByAVID(displayID, kSuppressNameMask + kForceNumberMask, &theStr);

DZÇÍÇÁÇÃÉRÅ[ÉãÇ™égópÇ≈Ç´ÇÈÇÃÇÕ Display Manager 2.0 Ç≈Ç∑ÇÃÇ≈ÅAíçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅBDisplay Manager 1.0 ÇÃÉVÉXÉeÉÄÇ≈DZÇÍÇÁÇÃÉRÅ[ÉãÇégǧDžÇÕÅADisplay Enabler Ç™ÉCÉìÉXÉgÅ[ÉãÇ≥ÇÍǃǢÇÈDZÇΔÇ™ïKóvÇ≈Ç∑ÅBDisplay Enabler ÇÕ Display Manager SDK Ç…ä‹Ç‹ÇÍǃǢNjÇ∑ÅBDisplay Manager SDK ÇÕDZÇÃÉTÉCÉgÇ©ÅAMacOS SDK CD DždžÇËÇ‹Ç∑ÅB

DMGetNameByAVID DžǬǢǃLJǧè≠ǵè⁄ǵÇ≠ê‡ñæÇµÇ‹Ç∑ÅBímÇËÇΩÇ¢ÉfÉoÉCÉXÇÃÅuñºëOÅvÇ‚ÉfÉoÉCÉXî‘çÜÇæÇØÅAdžÇÈÇ¢ÇÕóºï˚Çí≤Ç◊ÇÈÇ…ÇÕÅADMGetNameByAVID ä÷êîÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB

extern pascal OSErr DMGetNameByAVID
            (AVIDType theID, unsigned long nameFlags, Str255 *name)

theID: AVIDType ÇÕÉ|Å[ÉgÇΔÉfÉoÉCÉXÇï\Ç∑ ID Ç≈Ç∑ÅBå›ä∑ê´ÇÃÇΩÇflãåóàÇà Display ID É^ÉCÉvÇ™égópÇ≥ÇÍǃǢNjÇ∑ÅBäÓñ{ìIÇ…ÅAtheID ÇÕÅAGDevice ÉåÉRÅ[ÉhÇéÊìæÇµÇΩÇ¢ÉrÉfÉIÉfÉoÉCÉXÇà displayID ÇÃDZÇΔÇ≈Ç∑ÅB
nameFlags:
enum {
/* nameFlags ÇÃÉrÉbÉg */
kSuppressNumberBit      = 0,
kSuppressNumberMask     = 1,
kForceNumberBit         = 1,
kForceNumberMask        = 2,
kSuppressNameBit        = 2,
kSuppressNameMask       = 4
};
*name: *name ÇÕÉfÉoÉCÉXñº (ó·Ç¶ÇŒÅuMultiple Scan DisplayÅv) ÇΔÉfÉoÉCÉXî‘çÜÇä‹Çfiï∂éöóÒÇ≈Ç∑ÅBÉfÉoÉCÉXî‘çÜÇÕǪÇÃÉfÉoÉCÉXÇ™ÉfÉoÉCÉXÅEÉcÉäÅ[Ç…åªÇÍÇÈèáî‘Ç≈Ç∑ÅB

ÅuñºëOÅvÇÃàÍïîÇéÊìæÇµÇΩÇ¢èÍçáÇ…ÇÕÅAnameFlags ÉpÉâÉÅÅ[É^ÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB

ñºëOÇæÇØ (ó·Ç¶ÇŒÅuMultiple Scan DisplayÅv) ÇéÊìæÇ∑ÇÈÇ…ÇÕÅAnameFlags ÉpÉâÉÅÅ[É^Ç… kSuppressNumberMask ÉtÉâÉOÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB

     err = DMGetNameByAVID(displayID, kSuppressNumberMask, &nameStr);

î‘çÜÇæÇØÇéÊìæÇ∑ÇÈÇ…ÇÕÅAÉ}ÉXÉNÇ… kSuppressNameMask + kForceNumberMask ÇéwíËǵǃÇ≠ÇæÇ≥Ç¢ÅB

     err = DMGetNameByAVID(displayID, kSuppressNameMask + kForceNumberMask, &numberStr);

ǪÇÃï∂éöóÒÇ©ÇÁñºëOÇΔî‘çÜÇÃóºï˚ÇéÊìæÇ∑ÇÈÇ…ÇÕÅAkForceNumberMask ÉtÉâÉOÇégǡǃÇ≠ÇæÇ≥Ç¢ÅB

     err = DMGetNameByAVID(displayID, kForceNumberMask, &nameStr);

-- ÉåÉeÉBÉVÉAÅEÉAÉâÅ[ÉRÉì
devsupport@apple.com


[ Technical Q&A's : Graphics & Media : QuickDraw : QD55 ]